package com.itheima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.itheima.dao.ScattergramDao;
import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Scattergram;
import com.itheima.service.ScattergramService;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author yangsen
 * @desc 公司地址业务层
 * @Date 2020/10/28 19:21
 */
@Service
@Transactional
public class ScattergramServiceImpl implements ScattergramService {


    //本地注入
    @Autowired
    private ScattergramDao scattergramDao;


    /**
     * 查询地址信息
     *
     * @return 所有地址信息的集合
     */
    @Override
    public PageResult findPage(QueryPageBean queryPageBean) {

        //取出前端的数据
        Integer currentPage = queryPageBean.getCurrentPage();  //页码
        Integer pageSize = queryPageBean.getPageSize(); //每页条数
        String name = queryPageBean.getQueryString();  //查询的条件 (地址)

        //使用分页查询
        PageHelper.startPage(currentPage,pageSize);


        //查询数据库，查询详细的信息   模糊查询
        Page<Scattergram> page = scattergramDao.selectByCondition(name);

        //获取查询出的总条数
        long total = page.getTotal();
        //获取所以的详细的信息 (这个方法返回的数他本身，不过由page对象变成了集合对象)
        List<Scattergram> result = page.getResult();

        return new PageResult(total,result);
    }

    /**
     * 添加地址
     *
     * @param scattergram 地址的所有的信息
     */
    @Override
    public void add(Scattergram scattergram) {
        scattergramDao.add(scattergram);
    }

    /**
     * 通过id查询公司地址信息
     *
     * @param id 查询的id
     * @return
     */
    @Override
    public Scattergram findById(Integer id) {

        //查询
        return scattergramDao.findById(id);

    }

    /**
     * 修改地址信息
     *
     * @param scattergram 修改后的地址
     */
    @Override
    public void update(Scattergram scattergram) {
        scattergramDao.update(scattergram);
    }

    /**
     * 删除地址信息
     *
     * @param id 删除地址的id
     */
    @Override
    public void delete(Integer id) {
        scattergramDao.delete(id);
    }
}
